/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package custom.Blessing;

import com.l2jserver.gameserver.instancemanager.QuestManager;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;

/**
 *【ID】   【ITEM_NAME】
 * 17094	奈比特之声		内含奈比特之声的贝壳，此道具可以提升自己的评价值10。无法交易或丢弃。
 * 17095	奈比特沙漏-1小时	1~19	可以延长奈比特祝福1小时的奈比特沙漏。仅限等级1~19使用。无法交易或丢弃。
 * 17096	奈比特沙漏-1.5小时	1~19	可以延长奈比特祝福1.5小时的奈比特沙漏。仅限等级1~19使用。无法交易或丢弃。
 * 17097	奈比特沙漏-2小时	1~19	可以延长奈比特祝福2小时的奈比特沙漏。仅限等级1~19使用。无法交易或丢弃。
 * 17098	奈比特沙漏-2.5小时	1~19	可以延长奈比特祝福2.5小时的奈比特沙漏。仅限等级1~19使用。无法交易或丢弃。
 * 17099	奈比特沙漏-3小时	1~19	可以延长奈比特祝福3小时的奈比特沙漏。仅限等级1~19使用。无法交易或丢弃。
 * 17100	奈比特沙漏-1小时	20~39	可以延长奈比特祝福1小时的奈比特沙漏。仅限等级20~39使用。无法交易或丢弃。
 * 17101	奈比特沙漏-1.5小时	20~39	可以延长奈比特祝福1.5小时的奈比特沙漏。仅限等级20~39使用。无法交易或丢弃。
 * 17102	奈比特沙漏-2小时	20~39	可以延长奈比特祝福2小时的奈比特沙漏。仅限等级20~39使用。无法交易或丢弃。
 * 17103	奈比特沙漏-2.5小时	20~39	可以延长奈比特祝福2.5小时的奈比特沙漏。仅限等级20~39使用。无法交易或丢弃。
 * 17104	奈比特沙漏-3小时	20~39	可以延长奈比特祝福3小时的奈比特沙漏。仅限等级20~39使用。无法交易或丢弃。
 * 17105	奈比特沙漏-1小时	40~51	可以延长奈比特祝福1小时的奈比特沙漏。仅限等级40~51使用。无法交易或丢弃。
 * 17106	奈比特沙漏-1.5小时	40~51	可以延长奈比特祝福1.5小时的奈比特沙漏。仅限等级40~51使用。无法交易或丢弃。
 * 17107	奈比特沙漏-2小时	40~51	可以延长奈比特祝福2小时的奈比特沙漏。仅限等级40~51使用。无法交易或丢弃。
 * 17108	奈比特沙漏-2.5小时	40~51	可以延长奈比特祝福2.5小时的奈比特沙漏。仅限等级40~51使用。无法交易或丢弃。
 * 17109	奈比特沙漏-3小时	40~51	可以延长奈比特祝福3小时的奈比特沙漏。仅限等级40~51使用。无法交易或丢弃。
 * 17110	奈比特沙漏-1小时	52~60	可以延长奈比特祝福1小时的奈比特沙漏。仅限等级52~60使用。无法交易或丢弃。
 * 17111	奈比特沙漏-1.5小时	52~60	可以延长奈比特祝福1.5小时的奈比特沙漏。仅限等级52~60使用。无法交易或丢弃。
 * 17112	奈比特沙漏-2小时	52~60	可以延长奈比特祝福2小时的奈比特沙漏。仅限等级52~60使用。无法交易或丢弃。
 * 17113	奈比特沙漏-2.5小时	52~60	可以延长奈比特祝福2.5小时的奈比特沙漏。仅限等级52~60使用。无法交易或丢弃。
 * 17114	奈比特沙漏-3小时	52~60	可以延长奈比特祝福3小时的奈比特沙漏。仅限等级52~60使用。无法交易或丢弃。
 * 17115	奈比特沙漏-1小时	61~75	可以延长奈比特祝福1小时的奈比特沙漏。仅限等级61~75使用。无法交易或丢弃。
 * 17116	奈比特沙漏-1.5小时	61~75	可以延长奈比特祝福1.5小时的奈比特沙漏。仅限等级61~75使用。无法交易或丢弃。
 * 17117	奈比特沙漏-2小时	61~75	可以延长奈比特祝福2小时的奈比特沙漏。仅限等级61~75使用。无法交易或丢弃。
 * 17118	奈比特沙漏-2.5小时	61~75	可以延长奈比特祝福2.5小时的奈比特沙漏。仅限等级61~75使用。无法交易或丢弃。
 * 17119	奈比特沙漏-3小时	61~75	可以延长奈比特祝福3小时的奈比特沙漏。仅限等级61~75使用。无法交易或丢弃。
 * 17120	奈比特沙漏-1小时	76~79	可以延长奈比特祝福1小时的奈比特沙漏。仅限等级76~79使用。无法交易或丢弃。
 * 17121	奈比特沙漏-1.5小时	76~79	可以延长奈比特祝福1.5小时的奈比特沙漏。仅限等级76~79使用。无法交易或丢弃。
 * 17122	奈比特沙漏-2小时	76~79	可以延长奈比特祝福2小时的奈比特沙漏。仅限等级76~79使用。无法交易或丢弃。
 * 17123	奈比特沙漏-2.5小时	76~79	可以延长奈比特祝福2.5小时的奈比特沙漏。仅限等级76~79使用。无法交易或丢弃。
 * 17124	奈比特沙漏-3小时	76~79	可以延长奈比特祝福3小时的奈比特沙漏。仅限等级76~79使用。无法交易或丢弃。
 * 17125	奈比特沙漏-1小时	80~85	可以延长奈比特祝福1小时的奈比特沙漏。仅限等级80~85使用。无法交易或丢弃。
 * 17126	奈比特沙漏-1.5小时	80~85	可以延长奈比特祝福1.5小时的奈比特沙漏。仅限等级80~85使用。无法交易或丢弃。
 * 17127	奈比特沙漏-2小时	80~85	可以延长奈比特祝福2小时的奈比特沙漏。仅限等级80~85使用。无法交易或丢弃。
 * 17128	奈比特沙漏-2.5小时	80~85	可以延长奈比特祝福2.5小时的奈比特沙漏。仅限等级80~85使用。无法交易或丢弃。
 * 17129	奈比特沙漏-3小时	80~85	可以延长奈比特祝福3小时的奈比特沙漏。仅限等级80~85使用。无法交易或丢弃。
 */

/**
 * Event Code for "Blessing"
 * @author  Gnat
 * Update by pmq 12-10-2010
 */
public class Blessing extends Quest
{
	private static final int BLESSING               = 32783;    // 祝福的神官
	private static final int NEVITS_VOICE           = 17094;    // 奈比特之声
	private static final int NEVITS_HOURGLASS       = 17129;    // 奈比特沙漏

	private static final int ADENA                  = 57;       // 金币
	private static final int NEVITS_VOICE_PRICE     = 100000;   // 奈比特之声价钱
	private static final int NEVITS_VOICE_TIME      = 20;       // 奈比特之声可再买时间【已小时为单位】
	private static final int NEVITS_HOURGLASS_PRICE = 5000000;  // 奈比特沙漏价钱
	private static final int NEVITS_HOURGLASS_TIME  = 20;       // 奈比特沙漏可再买时间【已小时为单位】

	public Blessing(int questId, String name, String descr)
	{
		super(questId, name, descr);
		addStartNpc(BLESSING);
		addFirstTalkId(BLESSING);
		addTalkId(BLESSING);
	}

	@Override
	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
	{
		String htmltext = "";
		QuestState st = player.getQuestState(getName());
		Quest q = QuestManager.getInstance().getQuest(getName());

		htmltext = event;
		if (event.equalsIgnoreCase("voice"))
		{
			long _curr_time = System.currentTimeMillis();
			String value = q.loadGlobalQuestVar(player.getAccountName());
			long _reuse_time = value == "" ? 0 : Long.parseLong(value);
			if (_curr_time > _reuse_time)
			{
				if (st.getQuestItemsCount(ADENA) > NEVITS_VOICE_PRICE)
				{
					st.takeItems(ADENA, NEVITS_VOICE_PRICE);
					st.giveItems(NEVITS_VOICE, 1);
					q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (NEVITS_VOICE_TIME * 3600000)));
					htmltext = "";
				}
				else
					htmltext = "<html><body>祝福的神官：<br>您的好意我心领了，但您要捐献的金币好像还不太够呢。协助贫困人们的机会一直都为您敞开着，等您有能力协助的时候，请随时来找我。愿神的祝福与您同在...</body></html>";
			}
			else
			{
				long _remaining_time = (_reuse_time - _curr_time) / 1000;
				int hours = (int) _remaining_time / 3600;
				int minutes = ((int) _remaining_time % 3600) / 60;
				if (hours > 0)
				{
					SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.ITEM_PURCHASABLE_IN_S1_HOURS_S2_MINUTES);
					sm.addNumber(hours);
					sm.addNumber(minutes);
					player.sendPacket(sm);
					htmltext = "";
				}
				else if (minutes > 0)
				{
					SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.ITEM_PURCHASABLE_IN_S1_MINUTES);
					sm.addNumber(minutes);
					player.sendPacket(sm);
					htmltext = "";
				}
				else
				{
					// Little glitch. There is no SystemMessage with seconds only.
					// If time is less than 1 minute player can buy scrolls
					if (st.getQuestItemsCount(ADENA) > NEVITS_VOICE_PRICE)
					{
						st.takeItems(ADENA, NEVITS_VOICE_PRICE);
						st.giveItems(NEVITS_VOICE, 1);
						q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (NEVITS_VOICE_TIME * 3600000)));
						htmltext = "";
					}
					else
						htmltext = "<html><body>祝福的神官：<br>您的好意我心领了，但您要捐献的金币好像还不太够呢。协助贫困人们的机会一直都为您敞开着，等您有能力协助的时候，请随时来找我。愿神的祝福与您同在...</body></html>";
				}
			}
		}
		else if (event.equalsIgnoreCase("hourglass"))
		{
			long _curr_time = System.currentTimeMillis();
			String value = q.loadGlobalQuestVar(player.getAccountName());
			long _reuse_time = value == "" ? 0 : Long.parseLong(value);
			if (_curr_time > _reuse_time)
			{
				if (st.getQuestItemsCount(ADENA) > NEVITS_HOURGLASS_PRICE)
				{
					st.takeItems(ADENA, NEVITS_HOURGLASS_PRICE);
					st.giveItems(NEVITS_HOURGLASS, 1);
					q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (NEVITS_HOURGLASS_TIME * 3600000)));
					htmltext = "";
				}
				else
					htmltext = "<html><body>祝福的神官：<br>您的好意我心领了，但您要捐献的金币好像还不太够呢。协助贫困人们的机会一直都为您敞开着，等您有能力协助的时候，请随时来找我。愿神的祝福与您同在...</body></html>";
			}
			else
			{
				long _remaining_time = (_reuse_time - _curr_time) / 1000;
				int hours = (int) _remaining_time / 3600;
				int minutes = ((int) _remaining_time % 3600) / 60;
				if (hours > 0)
				{
					SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.ITEM_PURCHASABLE_IN_S1_HOURS_S2_MINUTES);
					sm.addNumber(hours);
					sm.addNumber(minutes);
					player.sendPacket(sm);
					htmltext = "";
				}
				else if (minutes > 0)
				{
					SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.ITEM_PURCHASABLE_IN_S1_MINUTES);
					sm.addNumber(minutes);
					player.sendPacket(sm);
					htmltext = "";
				}
				else
				{
					// Little glitch. There is no SystemMessage with seconds only.
					// If time is less than 1 minute player can buy scrolls
					if (st.getQuestItemsCount(ADENA) > NEVITS_HOURGLASS_PRICE)
					{
						st.takeItems(ADENA, NEVITS_HOURGLASS_PRICE);
						st.giveItems(NEVITS_HOURGLASS, 1);
						q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (NEVITS_HOURGLASS_TIME * 3600000)));
						htmltext = "";
					}
					else
						htmltext = "<html><body>祝福的神官：<br>您的好意我心领了，但您要捐献的金币好像还不太够呢。协助贫困人们的机会一直都为您敞开着，等您有能力协助的时候，请随时来找我。愿神的祝福与您同在...</body></html>";
				}
			}
		}

		return htmltext;
	}

	@Override
	public String onFirstTalk(L2Npc npc, L2PcInstance player)
	{
		String htmltext = "";
		QuestState st = player.getQuestState(getName());
		if (st == null)
		{
			Quest q = QuestManager.getInstance().getQuest(getName());
			st = q.newQuestState(player);
		}
		if (player.getLevel() <= 19)
			htmltext = "32783-l1.htm";
		if (player.getLevel() >= 20 && player.getLevel() <= 39)
			htmltext = "32783-l2.htm";
		if (player.getLevel() >= 40 && player.getLevel() <= 51)
			htmltext = "32783-l3.htm";
		if (player.getLevel() >= 52 && player.getLevel() <= 60)
			htmltext = "32783-l4.htm";
		if (player.getLevel() >= 61 && player.getLevel() <= 75)
			htmltext = "32783-l5.htm";
		if (player.getLevel() >= 76 && player.getLevel() <= 79)
			htmltext = "32783-l6.htm";
		if (player.getLevel() >= 80 && player.getLevel() <= 85)
			htmltext = "32783-l7.htm";
		return htmltext;
	}

	public static void main(String[] args)
	{
		new Blessing(-1, "Blessing", "custom");
	}
}